package com.many.common;

import java.util.Scanner;

/**
 * @ClassName count
 * @Description TODD
 * @Author James
 * @Date 2022/8/3
 * @Version 1.0
 **/
public class count {
//
//    public static void main(String[] args) {
//        int[] is= {13,2,32,14,53};
//        int[] arr;
//        arr = new int[]{1,12,23,10,53};
//        int a = binarySearch(is, 5);
//       // System.out.println(a);
//        //System.out.println(is[3]);
//        bubbleSort(is);
//
//        //System.out.println(bubbleSort(i));
//        int i=0;
//        for(i=1;i<=20;i++) {
//            System.out.println(f(i));
//        }

    //   }

    /**
     * 二分查找
     *
     * @param srcArray 源数组
     * @param des      目标元素
     * @return 如果找到则返回索引位置，找不到则返回-1
     */
    public static int binarySearch(int[] srcArray, int des) {
        //定义初始最小、最大索引
        int start = 0;
        int end = srcArray.length - 1;
        //确保不会出现重复查找，越界
        while (start <= end) {
            //计算出中间索引值  >>> 逻辑右移 也就是 int middle = (end + start)/2
            int middle = (end + start) >>> 1;//防止溢出

            if (des == srcArray[middle]) {
                return middle;
                //判断下限
            } else if (des < srcArray[middle]) {
                end = middle - 1;
                //判断上限
            } else {
                start = middle + 1;
            }
        }
        //若没有，则返回-1
        return -1;
    }

    public static void bubbleSort(int arr[]) {
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }


    public static int f(int x) {
        if (x == 1 || x == 2) {
            return 1;
        } else {
            return f(x - 1) + f(x - 2);
        }
    }

    public static void main(String[] args) {


            System.out.println(stringToReduce("aaabcddabddd"));


    }


    public static String stringToReduce(final String str) {

//

        StringBuffer result = new StringBuffer();

// 计算字符串长度

        final int count = str.length();

// 取第一个字符

        char c1 = str.charAt(0);

// 连续字符的个数

        int sum = 1;

        for (int i = 1; i < count; i++) {

// 循环取字符

            char c2 = str.charAt(i);

// 把前一个字符和当前字符比较

            if (c1 == c2) {

// 相同的只个数加一

                sum++;

                continue;

            }

// 拼接字符

            result.append(sum).append(c1);

// 当前字符变为前一字符

            c1 = c2;

// 个数清零

            sum = 1;

        }

// 加上最后一个字符及个数

        result.append(sum).append(c1);

        return result.toString();

    }

}
